SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q24]    
/*-------------------------------------------------------------------*/    
/*----- Empresa           : OFISIS S.A.                          ----*/    
/*----- Cliente           : OFISIS S.A.                          ----*/    
/*----- Sistema           : Contabilidad                         ----*/    
/*----- Modulo            : Empresa                              ----*/    
/*----- Programa          : Registro de Compras para el PDT      ----*/    
/*----- Nombre            : SP_TXMVTO_CNTB_Q24                   ----*/    
/*----- Script            : TXMVTO_CNTB                          ----*/    
/*----- Desarrollado por  : Martin Garcia Farfan                 ----*/    
/*----- Fecha             : 23/03/2001                           ----*/    
/*----- Base de Datos     : MS SQL Server                        ----*/    
/*----- Version BD        : 7.0                                  ----*/    
/*-------------------------------------------------------------------*/    
/*---- MODIF. POR         : PDGV                                 ----*/  
/*---- FECHA MODIF        : 10/05/2004                           ----*/  
/*---- DETALLE MODIF      : SE QUITO JOIN DE ESTADO ACTIVO       ----*/  
/*-------------------------------------------------------------------*/    
/*----- Drop proc SP_TXMVTO_CNTB_Q24                             ----*/    
/*----- Grant all on SP_TXMVTO_CNTB_Q24 to PUBLIC                ----*/    
/*----- SP_TXMVTO_CNTB_Q24                                       ----*/    
/*----- SP_TXMVTO_CNTB_Q24 '01',1,2002                           ----*/    
/*-------------------------------------------------------------------*/    
    
@ISCO_EMPR        TD_VC_002,    
@INNU_CNTB_EMPR   TD_IN_001_CONT,    
@INNU_ANNO        TD_IN_004_ANNO    
    
As    
     
Declare     
@VSNS_ASTO_BASE     char(16),    
@VSCO_MONE_BASE   TD_VC_003,    
@VSCO_MONE_BAS1   TD_VC_003,    
@VNIM_TOTA_BASX   TD_NU_016_004,    
@VNIM_TOTA_BASY   TD_NU_016_004,    
@VDFE_DOCU         TD_DT_001,    
@VSTI_DOCU_CNTB   TD_VC_003,    
@VSNU_DOCU         TD_VC_020,    
@VSCO_UNID         TD_VC_003,    
@VSCO_OPRC         TD_VC_003,    
@VSNS_ASTO         TD_VC_010,    
@VSCO_PROV         TD_VC_020,    
@VSNO_CORT_PROV   TD_VC_050,    
@VSNU_RUCS_PROV   Varchar(11),    
@VSCO_MONE   TD_VC_003,    
@VNIM_INAF_ORIX   TD_NU_016_004,    
@VNIM_AFEC_ORIX   TD_NU_016_004,    
@VNIM_IIGV_ORIX   TD_NU_016_004,    
@VNIM_FONA_ORIX   TD_NU_016_004,    
@VNIM_RENT_ORIX   TD_NU_016_004,    
@VNIM_TOTA_ORIX   TD_NU_016_004,    
@VNIM_INAF_SOLX   TD_NU_016_004,    
@VNIM_AFEC_SOLX   TD_NU_016_004,    
@VNIM_IIGV_SOLX   TD_NU_016_004,    
@VNIM_FONA_SOLX   TD_NU_016_004,    
@VNIM_RENT_SOLX   TD_NU_016_004,    
@VNIM_TOTA_SOLX   TD_NU_016_004,    
@VNFA_CAMB   TD_NU_009_004,    
@VNIM_IIGV_ORIG   TD_NU_016_004,    
@VNIM_FONA_ORIG   TD_NU_016_004,    
@VNIM_RENT_ORIG   TD_NU_016_004,    
@VNIM_TOTA_ORIG   TD_NU_016_004,    
@VNIM_IIGV_SOLE   TD_NU_016_004,    
@VNIM_FONA_SOLE   TD_NU_016_004,    
@VNIM_RENT_SOLE   TD_NU_016_004,    
@VNIM_TOTA_SOLE   TD_NU_016_004,    
@VNPO_IGV1   TD_NU_009_004,    
@VNPO_IGV2   TD_NU_009_004,    
@VNPO_REN1   TD_NU_009_004,    
@VNPO_REN2   TD_NU_009_004,    
@VSCO_OPR1   TD_VC_003,    
@VSCO_OPR2   TD_VC_003,    
@VSID_COMP    TD_VC_003,    
@VSID_IIGV    TD_VC_003,    
@VSID_FONA    TD_VC_003,    
@VSID_RENT    TD_VC_003,    
@VSTI_DOCU_AUXI   char(06),    
@VSCO_SUNA        TD_VC_002,    
@CSID_CNTA    TD_VC_003,    
@CDFE_DOCU   TD_DT_001,    
@CSTI_DOCU_CNTB   TD_VC_003,    
@CSNU_DOCU   TD_VC_020,    
@CSCO_UNID   TD_VC_003,    
@CSCO_OPRC   TD_VC_003,    
@CSNS_ASTO   TD_VC_010,    
@CSCO_AUXI   TD_VC_020,    
@CSCN_CNTB_EMPR   TD_VC_010,    
@CSTI_OPER_CNTB   TD_VC_003,    
@CSCO_MONE   TD_VC_003,    
@CNFA_CAMB   TD_NU_009_004,    
@CNIM_MVTO_ORIG   TD_NU_016_004,    
@CNIM_MVTO_CNTB   TD_NU_016_004,    
@CNPO_IMPT_REN1   TD_NU_015_006,    
@CNPO_IMPT_REN2   TD_NU_015_006,     
@CNPO_IMPT_VEN1   TD_NU_015_006,    
@CNPO_IMPT_VEN2   TD_NU_015_006,  
  
 @VSCO_DOCU_SUNA   TD_VC_003,    
 @VSNU_DOCU_SUNA   TD_VC_020,    
 @VSAP_PATE_AUXI   TD_VC_020,  
 @VSAP_MATE_AUXI   TD_VC_020,  
 @VSNO_NATU_AUX1   TD_VC_020,  
 @VSNO_NATU_AUX2   TD_VC_020,  
 @VSNO_RAZO_SOCI   Varchar(200),  
 @VSTI_PERS_SUNA   Varchar(3),  
 @CSTI_AUXI_EMPR  Varchar(1),  
 @VSTI_AUXI_EMPR  Varchar(1)  
    
/*----- Inicializando las variables -----*/    
Select @VNIM_IIGV_ORIG = 0.00    
Select @VNIM_FONA_ORIG = 0.00    
Select @VNIM_RENT_ORIG = 0.00    
Select @VNIM_TOTA_ORIG = 0.00    
Select @VDFE_DOCU      = Null    
Select @VSTI_DOCU_CNTB = Null    
Select @VSNS_ASTO      = Null    
Select @VSCO_PROV      = Null    
Select @VSNO_CORT_PROV = Null    
Select @VSNU_RUCS_PROV = Null    
Select @VSCO_MONE      = Null    
Select @VNIM_AFEC_ORIX = 0.00    
Select @VNIM_INAF_ORIX = 0.00    
Select @VNIM_IIGV_ORIX = 0.00    
Select @VNIM_FONA_ORIX = 0.00    
Select @VNIM_RENT_ORIX = 0.00    
Select @VNIM_TOTA_ORIX = 0.00    
Select @VNIM_AFEC_SOLX = 0.00    
Select @VNIM_INAF_SOLX = 0.00    
Select @VNIM_IIGV_SOLX = 0.00    
Select @VNIM_FONA_SOLX = 0.00    
Select @VNIM_RENT_SOLX = 0.00    
Select @VNIM_TOTA_ORIX = 0.00    
Select @VNFA_CAMB      = 0.00      
  
   Select @VSCO_DOCU_SUNA = Null    
   Select @VSNU_DOCU_SUNA = Null    
   Select @VSAP_PATE_AUXI = Null    
   Select @VSAP_MATE_AUXI = Null    
   Select @VSNO_NATU_AUX1 = Null    
   Select @VSNO_NATU_AUX2 = Null    
   Select @VSNO_RAZO_SOCI = Null    
   Select @VSTI_PERS_SUNA = Null      
   Select @VSTI_AUXI_EMPR = Null     
   
/*----- Obteniendo datos de Nro. de Contabilidad -----*/     
Select     
 @VSCO_MONE_BAS1 = CO_MONE,    
 @VSID_COMP   = ID_COMP,     
 @VSID_IIGV    = ID_IMPT_VENT,     
 @VSID_FONA   = ID_FONA,     
 @VSID_RENT   = ID_IMPT_RENT    
From TTCNTB_EMPR    
Where     
 CO_EMPR = @ISCO_EMPR and    
 NU_CNTB_EMPR = @INNU_CNTB_EMPR    
  
Delete From TWMVTO_Q024  
    
/*----- Cursor para el reporte de Registro de Compras -----*/    
Declare CU_TXMVTO_CNTB_Q24_1 Cursor    
 For    
  Select t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU, t1.CO_UNID_CNTB, t1.CO_OPRC_CNTB,     
         t1.NU_ASTO, t1.CO_AUXI_EMPR, t1.CO_CNTA_EMPR, t1.TI_OPER,     
         t1.CO_MONE, t1.FA_CAMB, t1.IM_MVTO_ORIG, t1.IM_MVTO_CNTB, t2.ID_CNTA,    
         t4.PO_IMPT_REN1, t4.PO_IMPT_REN2, t4.PO_IMPT_VEN1, t4.PO_IMPT_VEN2,t1.TI_AUXI_EMPR     
  From TXMVTO_CNTB t1  
    Left Outer Join TTPORC_IMPT t4  
    On t1.CO_EMPR = t4.CO_EMPR     
    And t1.NU_ANNO = t4.NU_ANNO    
    And t1.NU_MESE = t4.NU_MESE,   
    TTIDEN_CNTA t2, TMOPRC_CNTB t3, TMPLAN_EMPR t5    
  Where   t1.CO_EMPR = @ISCO_EMPR    
  and t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR    
  and t1.CO_OPRC_CNTB in (Select CO_OPRC_CNTB From TTIDEN_OPER Where CO_EMPR = @ISCO_EMPR   
    And NU_CNTB_EMPR = @INNU_CNTB_EMPR   
    And ID_OPRC = @VSID_COMP )    
  and t1.NU_ANNO = @INNU_ANNO     
  and t1.CO_CNTA_EMPR in (Select CO_CNTA_EMPR From TTIDEN_CNTA Where CO_EMPR = @ISCO_EMPR   
    And NU_CNTB_EMPR = @INNU_CNTB_EMPR   
    And ID_CNTA = @VSID_COMP or ID_CNTA = @VSID_IIGV )    
  and t1.SI_MVTO_CNTB = 'APR'    
  and t2.CO_EMPR  = t1.CO_EMPR    
  and t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR    
  and t2.NU_CNTB_EMPR = t1.NU_CNTB_EMPR    
  And t1.CO_EMPR = t3.CO_EMPR     
  And t1.CO_OPRC_CNTB = t3.CO_OPRC_CNTB    
  And t1.CO_EMPR = t5.CO_EMPR    
  And t5.NU_ANNO = 9999    
  And t1.CO_CNTA_EMPR = t5.CO_CNTA_EMPR     
  Order By t1.CO_UNID_CNTB, t1.CO_OPRC_CNTB, t1.NU_MESE, t1.NU_ASTO, t1.CO_CNTA_EMPR desc, t1.TI_AUXI_EMPR,   
  t1.CO_AUXI_EMPR    
    
Open CU_TXMVTO_CNTB_Q24_1    
Fetch CU_TXMVTO_CNTB_Q24_1 into    
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CSNS_ASTO,    
    @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB, @CSCO_MONE, @CNFA_CAMB,  @CNIM_MVTO_ORIG,    
    @CNIM_MVTO_CNTB, @CSID_CNTA, @CNPO_IMPT_REN1, @CNPO_IMPT_REN2, @CNPO_IMPT_VEN1, @CNPO_IMPT_VEN2,@CSTI_AUXI_EMPR     
    
    
Select @VSNS_ASTO_BASE = Null    
Select @VSCO_MONE_BASE = Null    
    
/*-------- Acumula Movimientos -----*/    
While @@Fetch_status = 0    
  Begin    
    
    /*----- Actualiza Temporal -----*/    
 If @VSNS_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) + Rtrim(@CSNS_ASTO)    
       And @VSCO_MONE_BASE IS NOT Null    
   Begin    
        Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)    
        Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100), 2)    
        If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50    
          Begin    
            Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)    
            Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)    
          End        
        Else    
          Begin    
            Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)    
          Select @VNIM_INAF_ORIX = 0.00    
          End    
    
        If @VSCO_MONE != @VSCO_MONE_BAS1    
          Begin    
            Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG    
            Select @VNIM_FONA_ORIX = @VNIM_FONA_ORIG    
            Select @VNIM_RENT_ORIX = @VNIM_RENT_ORIG    
            Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX + @VNIM_RENT_ORIX)    
       Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX * @VNFA_CAMB,2)    
            Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX * @VNFA_CAMB,2)    
            Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG * @VNFA_CAMB,2)    
            Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG * @VNFA_CAMB,2)    
            Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG * @VNFA_CAMB,2)    
            Select @VNIM_TOTA_SOLX = Round((@VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX + @VNIM_RENT_ORIX))* @VNFA_CAMB,2)    
          End    
        Else    
          Begin    
            Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)    
            Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)    
            Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)    
            Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG,2)    
            Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG,2)    
            Select @VNIM_TOTA_SOLX = Round((@VNIM_TOTA_ORIG + (@VNIM_FONA_ORIX +@VNIM_RENT_ORIX)),2)    
            Select @VNIM_AFEC_ORIX = Null    
            Select @VNIM_INAF_ORIX = Null    
            Select @VNIM_IIGV_ORIX = Null    
            Select @VNIM_FONA_ORIX = Null    
            Select @VNIM_RENT_ORIX = Null    
            Select @VNIM_TOTA_ORIX = Null    
            Select @VNFA_CAMB = Null    
          End    
        Select @VSCO_SUNA = CO_SUNA From TTDOCU_CNTB Where TI_DOCU = @VSTI_DOCU_CNTB    
        Select @VSTI_DOCU_AUXI = @VSTI_DOCU_CNTB    
    
        Insert Into TWMVTO_Q024 Values (@VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU_AUXI,    
             @VSNU_DOCU, @VSCO_UNID, @VSCO_OPRC,@VSNS_ASTO, @VSCO_PROV, @VSNO_CORT_PROV,    
             @VSNU_RUCS_PROV, @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_IIGV_ORIX,    
             @VNIM_FONA_ORIX, @VNIM_RENT_ORIX, @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX,     
             @VNIM_IIGV_SOLX, @VNIM_FONA_SOLX, @VNIM_RENT_SOLX, @VNIM_TOTA_SOLX,     
             @VNFA_CAMB, 0.00, 0.00, 0.00, 0.00, 0.00,@VSCO_DOCU_SUNA,@VSNU_DOCU_SUNA,@VSAP_PATE_AUXI,  
       @VSAP_MATE_AUXI,@VSNO_NATU_AUX1,@VSNO_NATU_AUX2,@VSNO_RAZO_SOCI,@VSTI_PERS_SUNA,@VSTI_AUXI_EMPR)    
  
  
    
        Select @VSCO_MONE_BASE = Null    
        Select @VDFE_DOCU = Null    
        Select @VSTI_DOCU_CNTB = Null    
        Select @VSNS_ASTO = Null    
        Select @VSCO_PROV = Null    
        Select @VSNO_CORT_PROV = Null    
        Select @VSNU_RUCS_PROV  = Null    
        Select @VSCO_MONE = Null    
        Select @VNIM_IIGV_ORIG = 0.00    
        Select @VNIM_FONA_ORIG = 0.00    
        Select @VNIM_RENT_ORIG = 0.00    
        Select @VNIM_TOTA_ORIG = 0.00    
        Select @VNIM_AFEC_ORIX = 0.00    
        Select @VNIM_INAF_ORIX = 0.00    
        Select @VNIM_IIGV_ORIX = 0.00    
        Select @VNIM_FONA_ORIX = 0.00    
        Select @VNIM_RENT_ORIX = 0.00    
        Select @VNIM_TOTA_ORIX = 0.00    
        Select @VNIM_AFEC_SOLX = 0.00    
        Select @VNIM_INAF_SOLX = 0.00    
  Select @VNIM_IIGV_SOLX = 0.00    
        Select @VNIM_FONA_SOLX = 0.00       
        Select @VNIM_RENT_SOLX = 0.00    
        Select @VNIM_TOTA_ORIX = 0.00    
        Select @VNFA_CAMB = 0.00       
  
   Select @VSCO_DOCU_SUNA = Null    
   Select @VSNU_DOCU_SUNA = Null    
   Select @VSAP_PATE_AUXI = Null    
   Select @VSAP_MATE_AUXI = Null    
   Select @VSNO_NATU_AUX1 = Null    
   Select @VSNO_NATU_AUX2 = Null    
   Select @VSNO_RAZO_SOCI = Null    
   Select @VSTI_PERS_SUNA = Null     
   Select @VSTI_AUXI_EMPR = Null     
      End    
    
      /*-----  Acumula Movimientos - Provisiones -----*/    
      If @CNPO_IMPT_VEN1 IS Null    
          Select @CNPO_IMPT_VEN1 = 0.00    
      If @CNPO_IMPT_VEN2 IS Null    
          Select @CNPO_IMPT_VEN2 = 0.00    
      If @CNPO_IMPT_REN1 IS Null    
          Select @CNPO_IMPT_REN1 = 0.00    
      If @CNPO_IMPT_REN2 IS Null    
          Select @CNPO_IMPT_REN2 = 0.00    
      Select @VNPO_IGV1 = @CNPO_IMPT_VEN1    
      Select @VNPO_IGV2 = @CNPO_IMPT_VEN2    
    
      Select @VSNS_ASTO_BASE = Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) + RTrim(@CSNS_ASTO)    
    
      If @CSID_CNTA = '001'    
        Begin    
          If @VSCO_MONE_BASE IS Null    
            Begin    
              Select @VSCO_PROV = CO_AUXI_EMPR,    
                     @VSNO_CORT_PROV = NO_AUXI,    
                     @VSNU_RUCS_PROV = NU_RUCS,   
       @VSCO_DOCU_SUNA = CO_DOCU_SUNA,    
        @VSNU_DOCU_SUNA = NU_DOCU_SUNA,    
        @VSAP_PATE_AUXI = AP_PATE_AUXI,  
        @VSAP_MATE_AUXI = AP_MATE_AUXI,  
        @VSNO_NATU_AUX1 = NO_NATU_AUX1,  
        @VSNO_NATU_AUX2 = NO_NATU_AUX2,  
        @VSNO_RAZO_SOCI = NO_RAZO_SOCI,  
        @VSTI_PERS_SUNA = TI_PERS_SUNA    
              From TMAUXI_EMPR    
              Where CO_EMPR = @ISCO_EMPR And    
              TI_AUXI_EMPR = @CSTI_AUXI_EMPR And    
              CO_AUXI_EMPR = @CSCO_AUXI    
              If @@rowcount = 0    
                Begin    
                  Select @VDFE_DOCU = Null    
                  Select @VSTI_DOCU_CNTB = Null    
                  Select @VSNU_DOCU = Null    
                  Select @VSCO_PROV = Null     
                  Select @VSNO_CORT_PROV = Null    
                  Select @VSNU_RUCS_PROV = Null    
   Select @VSCO_DOCU_SUNA = Null    
   Select @VSNU_DOCU_SUNA = Null    
   Select @VSAP_PATE_AUXI = Null    
   Select @VSAP_MATE_AUXI = Null    
   Select @VSNO_NATU_AUX1 = Null    
   Select @VSNO_NATU_AUX2 = Null    
   Select @VSNO_RAZO_SOCI = Null    
   Select @VSTI_PERS_SUNA = Null    
   Select @VSTI_AUXI_EMPR = Null    
                End    
              Else     
                Begin    
                  Select @VDFE_DOCU = @CDFE_DOCU    
                  Select @VSTI_DOCU_CNTB = @CSTI_DOCU_CNTB    
                  Select @VSNU_DOCU = @CSNU_DOCU    
                End    
              Select @VSCO_UNID = @CSCO_UNID     
              Select @VSCO_OPRC = @CSCO_OPRC    
              Select @VSNS_ASTO = @CSNS_ASTO    
              Select @VSCO_MONE = @CSCO_MONE    
              Select @VNFA_CAMB = Round(@CNFA_CAMB,3)    
              Select @VSCO_MONE_BASE = @CSCO_MONE    
              Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR  
            End    
      
          If @VSCO_MONE_BASE IS NOT Null    
            Begin    
              If @VSCO_MONE_BASE != @CSCO_MONE    
                Begin    
                  Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)    
                End    
              If @CSTI_OPER_CNTB = 'ABO'    
                Begin    
                  Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG + @CNIM_MVTO_ORIG,2)    
                End    
              Else If @CSTI_OPER_CNTB = 'CAR'    
                Begin    
                  Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG - @CNIM_MVTO_ORIG,2)    
                End    
            End    
        End    
    
      /*-----  Acumula Movimientos - IGV  -----*/    
      If @CSID_CNTA = '009'    
        Begin    
          If @VSCO_MONE_BASE IS NOT Null    
          Begin    
              If @VSCO_MONE_BASE != @CSCO_MONE    
                Begin    
                  Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)    
                End    
              If @CSTI_OPER_CNTB = 'CAR'    
                Begin    
 Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG + @CNIM_MVTO_ORIG,2)    
                End    
              Else If @CSTI_OPER_CNTB = 'ABO'    
                Begin    
                  Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG - @CNIM_MVTO_ORIG,2)    
                End    
            End    
        End    
     
      /*-----  Acumula Movimientos - FONAVI  -----*/    
      If @CSID_CNTA = '008'    
        Begin    
          If @VSCO_MONE_BASE IS NOT Null    
            Begin    
              If @VSCO_MONE_BASE != @CSCO_MONE    
                Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)    
              If @CSTI_OPER_CNTB = 'CAR'    
                Select @VNIM_FONA_ORIG = Round(@VNIM_FONA_ORIG + @CNIM_MVTO_ORIG,2)    
              Else If @CSTI_OPER_CNTB = 'ABO'    
                Select @VNIM_FONA_ORIG = Round(@VNIM_FONA_ORIG - @CNIM_MVTO_ORIG,2)    
            End    
        End    
     
      /*-----   Acumula Movimientos - 4ta. CAT.   -----*/    
      If @CSID_CNTA = '010'    
        Begin    
          If @VSCO_MONE_BASE IS NOT Null    
            Begin    
              If @VSCO_MONE_BASE != @CSCO_MONE    
                Begin    
                  Select @CNIM_MVTO_ORIG = Round(@CNIM_MVTO_ORIG / @VNFA_CAMB,2)    
                End    
              If @CSTI_OPER_CNTB = 'CAR'    
                Begin                     Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG + @CNIM_MVTO_ORIG,2)    
                End    
              Else If @CSTI_OPER_CNTB = 'ABO'    
                Begin    
                  Select @VNIM_RENT_ORIG = Round(@VNIM_RENT_ORIG - @CNIM_MVTO_ORIG,2)    
                End    
            End    
        End    
    Fetch CU_TXMVTO_CNTB_Q24_1 into    
    @CDFE_DOCU, @CSTI_DOCU_CNTB,  @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CSNS_ASTO,    
    @CSCO_AUXI,@CSCN_CNTB_EMPR, @CSTI_OPER_CNTB, @CSCO_MONE, @CNFA_CAMB,    
    @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB,@CSID_CNTA, @CNPO_IMPT_REN1, @CNPO_IMPT_REN2,    
    @CNPO_IMPT_VEN1, @CNPO_IMPT_VEN2,@CSTI_AUXI_EMPR     
  End    
Close CU_TXMVTO_CNTB_Q24_1    
Deallocate CU_TXMVTO_CNTB_Q24_1    
    
If  @VSCO_MONE_BASE IS NOT Null     
  Begin    
    Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)    
    Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)    
    If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50     
      Begin    
        Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)    
        Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)    
      End        
    Else    
      Begin    
        Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)    
        Select @VNIM_INAF_ORIX = 0.00    
      End    
    
    If @VSCO_MONE != @VSCO_MONE_BAS1    
      Begin    
        Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG    
        Select @VNIM_FONA_ORIX = @VNIM_FONA_ORIG    
        Select @VNIM_RENT_ORIX = @VNIM_RENT_ORIG    
        Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG    
        Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX * @VNFA_CAMB,2)    
        Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX * @VNFA_CAMB,2)    
        Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG * @VNFA_CAMB,2)    
        Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG * @VNFA_CAMB,2)    
        Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG * @VNFA_CAMB,2)    
        Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG * @VNFA_CAMB,2)    
      End    
    Else    
      Begin    
        Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)    
        Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)    
        Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)    
        Select @VNIM_FONA_SOLX = Round(@VNIM_FONA_ORIG,2)    
        Select @VNIM_RENT_SOLX = Round(@VNIM_RENT_ORIG,2)    
        Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG,2)    
        Select @VNIM_AFEC_ORIX = Null    
        Select @VNIM_INAF_ORIX = Null    
        Select @VNIM_IIGV_ORIX = Null    
        Select @VNIM_FONA_ORIX = Null    
        Select @VNIM_RENT_ORIX = Null    
        Select @VNIM_TOTA_ORIX = Null    
        Select @VNFA_CAMB      = Null    
      End    
    
    Select @VSCO_SUNA = CO_SUNA    
    From TTDOCU_CNTB    
    Where TI_DOCU = @VSTI_DOCU_CNTB    
       
    Select @VSTI_DOCU_AUXI = @VSTI_DOCU_CNTB    
      
    Insert Into TWMVTO_Q024 Values (@VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU_AUXI, @VSNU_DOCU,    
         @VSCO_UNID, @VSCO_OPRC, @VSNS_ASTO, @VSCO_PROV, @VSNO_CORT_PROV, @VSNU_RUCS_PROV,    
         @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_IIGV_ORIX, @VNIM_FONA_ORIX,    
         @VNIM_RENT_ORIX, @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_IIGV_SOLX,    
         @VNIM_FONA_SOLX, @VNIM_RENT_SOLX, @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, 0.00, 0.00, 0.00, 0.00,  
       @VSCO_DOCU_SUNA,@VSNU_DOCU_SUNA,@VSAP_PATE_AUXI,  
       @VSAP_MATE_AUXI,@VSNO_NATU_AUX1,@VSNO_NATU_AUX2,@VSNO_RAZO_SOCI,@VSTI_PERS_SUNA,@VSTI_AUXI_EMPR)    
  End    
-- SELECT * FROM TWMVTO_Q024     
Return    
/*--------------------------------- Fin -------------------------------------*/    
    
  


GO
